package com.ycxy.school.express.service;

import com.ycxy.school.express.pojo.dto.FeedbackAddNewDTO;
import com.ycxy.school.express.pojo.dto.FeedbackUpdateDTO;
import com.ycxy.school.express.pojo.vo.FeedbackListItemVO;

import java.util.List;

/**
 * @Author jayLuo
 * @Date 2023/1/7 11:16
 * @PackageName:com.ycxy.school.express.service
 * @ClassName: IFeedbackService
 * @Description: TODO
 * @Version 1.0
 */
public interface IFeedbackService{

    /**
     * 用户提交反馈
     *
     * @param feedbackAddNewDTO 反馈信息
     */
    void addNew(FeedbackAddNewDTO feedbackAddNewDTO);

    /**
     * 处理用户反馈
     *
     * @param id 反馈id
     * @param feedbackUpdateDTO 反馈结果信息
     */
    void handleFeedback(Long id,FeedbackUpdateDTO feedbackUpdateDTO);

    /**
     * 标记用户反馈为处理中
     *
     * @param id
     */
    void setProcess(Long id);

    /**
     * 根据用户反馈id删除反馈
     *
     * @param id
     */
    void delete(Long id);

    /**
     * 查询用户反馈列表
     *
     * @return
     */
    List<FeedbackListItemVO> list();

    /**
     * 根据用户id查询用户反馈列表
     * @return
     */
    List<FeedbackListItemVO> listByUserId();

    /**
     * 查询等待处理的反馈数量
     *
     * @return
     */
    int countByWait();

    /**
     * 查询处理中的反馈数量
     *
     * @return
     */
    int countByProcess();

    /**
     * 查询处理完成的反馈数量
     *
     * @return
     */
    int countByComplete();
}
